﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class curso_form : System.Web.UI.Page
{
    string cadenaError = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if ((Academia.Entidades.Usuario.RolUsuario)Session["rol"] !=
                    Academia.Entidades.Usuario.RolUsuario.Administrador)
            {
                Page.Response.Redirect("MenuAlumno.aspx");
            }
        }

        catch
        {
            Page.Response.Redirect("Login.aspx");
        }

        if (!Page.IsPostBack)
        {
            ddlAbierto.Items.Insert(0, new ListItem("Sí", "1"));
            ddlAbierto.Items.Insert(1, new ListItem("No", "0"));

            if (Request.QueryString["idCurso"] == null)
            {
                this.tipoOp.Value = "alta";
                this.lblTitulo.Text = "Agregar Curso";
                this.btnGuardar.Text = "Agregar";
            }

            else
            {
                Academia.Entidades.Curso curso = new Academia.Negocio.Cursos().RecuperarUno(int.Parse(Request.QueryString["idCurso"]))[0];
                this.ddlMateria.SelectedValue = curso.materia.IdMateria.ToString();
                this.ddlComision.SelectedValue = curso.comision.IdComision.ToString();
                this.ddlAbierto.SelectedValue = curso.Abierto ? "1" : "0";
                this.txtAnio.Text = curso.Anio.ToString();
                this.txtAula.Text = curso.Aula.ToString();
                this.txtCupo.Text = curso.Cupo.ToString();
                this.tipoOp.Value = "modificacion";
                this.lblTitulo.Text = "Modificar Curso";
                this.btnGuardar.Text = "Modificar";
            }
        }

    }
    protected void btnGuardar_Click(object sender, EventArgs e)
    {
        if (cursoValido())
        {
            Academia.Entidades.Curso oCurso = new Academia.Entidades.Curso();
            oCurso.Abierto = this.ddlAbierto.SelectedValue.Equals("1") ? true : false;
            oCurso.Anio = int.Parse(this.txtAnio.Text);
            oCurso.Aula = int.Parse(this.txtAula.Text);
            oCurso.comision = new Academia.Negocio.Comisiones().RecuperarUno(int.Parse(this.ddlComision.SelectedValue))[0];
            oCurso.materia = new Academia.Negocio.Materias().RecuperarUno(int.Parse(this.ddlMateria.SelectedValue))[0];
            oCurso.Cupo = int.Parse(this.txtCupo.Text);

            if (this.tipoOp.Value == "alta")
            {
                new Academia.Negocio.Cursos().Agregar(oCurso);
                Page.Response.Redirect("abm_cursos.aspx?exito=1&op=alta");
            }
            else
            {
                int idCurso = int.Parse(Request.QueryString["idCurso"]);
                oCurso.IdCurso = idCurso;
                new Academia.Negocio.Cursos().Modificar(oCurso);
                Page.Response.Redirect("abm_cursos.aspx?exito=1&op=modif");
            }
        }
        else
        {
            HtmlGenericControl body = this.Master.FindControl("bodytag") as HtmlGenericControl;
            body.Attributes.Add("onLoad", "alert('" + this.cadenaError + "');");
        }

    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Page.Response.Redirect("abm_cursos.aspx");
    }

    private bool cursoValido()
    {
        bool valido = true;

        if (!Academia.Utilidades.Validaciones.validarAño(this.txtAnio.Text))
        {
            valido = false;
            this.txtAnio.BackColor = System.Drawing.Color.Red;
            cadenaError = cadenaError + "El año ingresado está fuera del rango permitido" + "\\n";
        }
        else
        {
            this.txtAnio.BackColor = System.Drawing.Color.White;
        }

        if (!Academia.Utilidades.Validaciones.validarNumero(this.txtAula.Text))
        {
            valido = false;
            this.txtAula.BackColor = System.Drawing.Color.Red;
            cadenaError = cadenaError + "El aula ingresada no es numérica" + "\\n";
        }

        else
        {
            this.txtAula.BackColor = System.Drawing.Color.White;
        }


        if (!Academia.Utilidades.Validaciones.validarNumero(this.txtCupo.Text))
        {
            valido = false;
            this.txtCupo.BackColor = System.Drawing.Color.Red;
            cadenaError = cadenaError + "El cupo ingresado no es numérico" + "\\n";
        }

        else
        {
            this.txtCupo.BackColor = System.Drawing.Color.White;
        }

        return valido;
    }

}
